package com.edu.app.service.sys.ai;

import com.edu.app.bean.core.SysUser;
import com.edu.app.bean.virtualbean.KeyValueItems;
import com.edu.app.bean.virtualbean.NameValueItems;
import com.edu.app.bean.virtualbean.customize.SalesCommon;
import com.edu.app.bean.virtualbean.customize.SalesPerf;

import com.edu.app.model.customer.CustomerNotActiveModel;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface SysAISalesService {
    List<CustomerNotActiveModel> getNotActiveCustomerByUser(String username, Integer range);
    List<CustomerNotActiveModel> getNotActiveCustomer(Integer range);
    List<KeyValueItems> getCustomerWithDemoClassToday(String username);
    List<NameValueItems> getCustomerWithDemoClassFuture(String username);
    NameValueItems getSalesDemoClassRank(String username);
    NameValueItems getSalesContractNumber(String username);
    NameValueItems getSalesContractTotalAmount(String username);
    List<NameValueItems> getSalesDemoClassRankAllByDay();
    List<NameValueItems> getSalesDemoClassRankAllByWeek();
    List<NameValueItems> getSalesDemoClassRankAllByMonth();
    List<NameValueItems> getSalesContractNumberAllByDay();
    List<NameValueItems> getSalesContractNumberAllByWeek();
    List<NameValueItems> getSalesContractNumberAllByMonth();
    List<NameValueItems> getSalesContractTotalAmountAllByDay();
    List<NameValueItems> getSalesContractTotalAmountAllByWeek();
    List<NameValueItems> getSalesContractTotalAmountAllByMonth(String date);

    PageInfo getMyCustomerModel(Integer currentPage, Integer pageSize, String orderBy, String sequence, String username, Integer status);
    PageInfo getAllPoCustomerModel(Integer currentPage, Integer pageSize, String orderBy, String sequence, Integer status);
    PageInfo getPoCustomerModel(Integer currentPage, Integer pageSize, String orderBy, String sequence);

    PageInfo getAllDemoClassPoCustomerModel(Integer currentPage, Integer pageSize, String orderBy, String sequence, Integer status);

    List<SalesCommon> getActNumberByTypeAndMonthAll(String date);
    List<SalesPerf> getContractNumberAndAmountByMonthAll(String date);
    List<SalesCommon> getActNumberByTypeAndWeekAll(String date);
    List<SalesPerf> getContractNumberAndAmountByWeekAll(String date);
    List<SalesCommon> getActNumberByTypeAndDayAll(String date);
    List<SalesPerf> getContractNumberAndAmountByDayAll(String date);

    NameValueItems getActNumberByTypeAndMonth(String username, String type, String date);
    NameValueItems getContractNumberByMonth(String username, String date);
    NameValueItems getContractAmountByMonth(String username, String date);
    NameValueItems getActNumberByTypeAndWeek(String username, String type, String date);
    NameValueItems getContractNumberByWeek(String username, String date);
    NameValueItems getContractAmountByWeek(String username, String date);
    NameValueItems getActNumberByTypeAndDay(String username, String type, String date);
    NameValueItems getContractNumberByDay(String username, String date);
    NameValueItems getContractAmountByDay(String username, String date);
    NameValueItems getCusNumberByType(String username, Integer customer_type);

    List<SysUser> getSalesList();
    List<SalesPerf> getSalesPerfByDay(String date);
    List<SalesPerf> getSalesPerfByDayWithName(String date, String username);

    PageInfo getCustomerNotAssignedModel(Integer currentPage, Integer pageSize, String orderBy, String sequence);
}